Extension: .RAD Version: 1.0 Created by: Reality Tracker: Reality ADlib Tracker Players: - Description by: Shayde / Reality Taken from: RAD Tracker 1.1a Note: Adlib music format TECHNICAL SPECIFICATIONS ▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀ RAD file format is as follows: (values in hex) █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █ HEADER █ █────────────────────────────────────────────────────────────────────────█ █ Offset 00..0F:"RAD by REALiTY!!" - Use this to recognize a RAD tune. █ █ Just detecting the initial "RAD" █ █ should be sufficient though! ;-) █ █ █ █ Offset 10:BCD - Version of RAD file. █ █ Currently 10h for v1.0. █ █ █ █ Offset 11:Bit 7 - Set if a description follows. █ █ Bit 6 - Set if it's a "slow-timer" tune. █ █ Bits 4..0 - The initial speed of the tune. █ █ █ █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █ DESCRIPTION █ █────────────────────────────────────────────────────────────────────────█ █ The description follows the header if Bit 7 of Offset 11h is set. The █ █ description is a null-terminated string. To save some space in the █ █ tune file, the characters mean: █ █ █ █ Char 00 - End of description (null-terminator) █ █ Char 01 - Move to start of next line (Carriage return) █ █ Char 02..1F - Output this many spaces █ █ Char 20..FF - Output this character █ █ █ █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █ INSTRUMENTS █ █────────────────────────────────────────────────────────────────────────█ █ Next come the instruments: █ █ █ █ Offset 00:Instrument Number that follows (or 0 for end of list) █ █ █ █ Offset 01..0B:The instrument definition in HSC .INS format: █ █ █ █ ╔══════╦═══════════════════╦═══════════════════════╗ █ █ ║ ║ ║ Adlib Register ║ █ █ ║ Byte ║ Carrier/Modulator ║ (Relative to Chan. 0) ║ █ █ ╠══════╩═══════════════════╩═══════════════════════╣ █ █ ║ 00 │ Carrier │ 23h ║ █ █ ║ 01 │ Modulator │ 20h ║ █ █ ║ 02 │ Carrier │ 43h - Instr. Volume ║ █ █ ║ 03 │ Modulator │ 40h ║ █ █ ║ 04 │ Carrier │ 63h ║ █ █ ║ 05 │ Modulator │ 60h ║ █ █ ║ 06 │ Carrier │ 83h ║ █ █ ║ 07 │ Modulator │ 80h ║ █ █ ║ 08 │ Both │ C0h ║ █ █ ║ 09 │ Carrier │ E3h ║ █ █ ║ 0A │ Modulator │ E0h ║ █ █ ╚══════════════════════════════════════════════════╝ █ █ █ █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █ ORDER LIST █ █────────────────────────────────────────────────────────────────────────█ █ The Order List follows the instruments: █ █ █ █ Offset 00:Length of Order List (up to 128) █ █ █ █ Offset 01..nn:List of orders, one byte for each line: █ █ █ █ 00..1F:The pattern to play. █ █ 80..FF:The line to jump to minus 80h (Jump Marker) █ █ █ █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █ PATTERN OFFSET TABLE █ █────────────────────────────────────────────────────────────────────────█ █ For all 32 patterns there is a word in this table which gives the █ █ offset from the start of the file of the pattern data. █ █ If a pattern is empty then the offset is zero. █ █ █ █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █ PATTERNS █ █────────────────────────────────────────────────────────────────────────█ █ Offset 00:Line number whose notes follow. Bit 7 set means that █ █ this is the last line. Note, lines that have no notes █ █ or effects on do not appear. █ █ █ █ Offset 01....:List of notes for that line: █ █ █ █ Offset 00:Channel no. note appears in (0 to 8). █ █ Bit 7 set means this is the last note for █ █ this line. █ █ Offset 01..02:The note/effect for this channel. █ █ If the effect nibble is non-zero then █ █ Offset 03 contains the parameter, otherwise █ █ the next channel starts at Offset 03. █ █ █ █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █ NOTES █ █────────────────────────────────────────────────────────────────────────█ █ Notes occupy three bytes (two if the effect nibble is zero): █ █ █ █ Byte 00:Bit 7: Bit 4 of the instrument number. █ █ Bit 6..4: Octave of note. █ █ Bit 3..0: Note (1-12) in this order: █ █ C#, D, D#, E, F, F#, G, G#, A, A#, B, C █ █ A zero denotes no note and 15 denotes a █ █ KEY-OFF. █ █ █ █ Byte 01:Bit 7..4: Bits 3 to 0 of the instrument number. █ █ Bit 3..0: The effect nibble (the effect column █ █ in RAD is the hex equivalent of this █ █ nibble). █ █ █ █ Byte 02:The parameter to the effect (if any). █ █ Because parameters only go from 0 to 99, bit 7 is █ █ not used, but may be used in a later version of RAD. █ █ █ █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ - Shayde / Reality, Feb95